package com.zhangtai.modules.vo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Data
public class UpdateEmployeeBpmVo {

    @NotNull(message = "员工id不能为空")
    @ApiModelProperty(value="id",required = true)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid; //id


//    @ApiModelProperty(value="0：本地库的新员工，1：离职不到一年，2：离职超过一年",required = false)
//    private Integer type; //，1：离职不到一年，2：离职超过一年


//
//    @ApiModelProperty(value="员工工号",required = false)
//    private String code;//新员工工号





//    @ApiModelProperty(value="入职日期",required = false)
//    private Date hiredate;
//
//    @ApiModelProperty(value="姓名",required = false)
//    private String name; //员工姓名
//    @ApiModelProperty(value="手机",required = false)
//    private String mobile;




    /**
     * 部门id
     */
    @ApiModelProperty(value="拟录部门id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;


    /**
     * 职位id
     */
    @ApiModelProperty(value="岗位id，读接口/job/findJobByOrgId/{orgId}获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobId;



    /**
     * 公司id
     */
    @ApiModelProperty(value="拟录公司id，读接口/job/findOrgTree获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long orgId;


    /**
     * 职级id
     */

    @ApiModelProperty(value="职级id，读 /job/findJobLevel 接口获取",required = false)
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long  jobLevelId;

    /**
     * 试用期
     */
//    @NotNull(message = "试用期不能为空")
//    @ApiModelProperty(value="试用期，单位为月",required = false)
//    private Integer probationday;
    /**
     * 转正日期
     */
//    @NotNull(message = "转正日期不能为空")
//    @ApiModelProperty(value="转正日期",required = true)
//    private Date regularDay;

//    /**
//     * 合同类型
//     */
//    @ApiModelProperty(value="合同类型",required = false)
//    private String contractType;

//    @ApiModelProperty(value="合同期限类型，1：A类，2：B类，3：C类",required = false)
//    private String contractTimeType;

    /**
     * 劳动合同/实习/返聘期限期限
     */
//    @NotNull(message = "劳动合同/实习/返聘期限期限不能为空")
//    @ApiModelProperty(value="劳动合同/实习/返聘期限 ，选择列表：1：1个月，2：2个月，3：3个月，4：半年，5：1年，6：2年，7：3年",required = false)
//    private Integer  laborContractYears;



//
//
//    @ApiModelProperty(value="条线id，读接口：/salary/getOrgLine获取",required = false)
//    @JsonDeserialize(using = LongJsonDeserializer.class)
//    @JsonSerialize(using = LongJsonSerializer.class)
//    private Long lineId;
//
//
//    @ApiModelProperty(value="体系id，读接口：/salary/getOrgSystem获取",required = false)
//    @JsonDeserialize(using = LongJsonDeserializer.class)
//    @JsonSerialize(using = LongJsonSerializer.class)
//    private Long jobSystemId;


    /**
     * 用工类型
     */
//    @ApiModelProperty(value="用工类型",required = false)
//    private String jobType;

    /**
     * 职级类别
     */
//    @ApiModelProperty(value="职级类别",required = false)
//    private String jobLevelType;




    /**
     * 原单位月薪
     */
    @ApiModelProperty(value="原单位薪资，",required = false)
    private BigDecimal oldSalary;

    /**
     * 原单位绩效
     */
//    @ApiModelProperty(value="原单位绩效，",required = false)
//    private BigDecimal oldPerformance;

    /**
     * 固定月薪
     */

    @ApiModelProperty(value="转正月薪，",required = false)
    private BigDecimal monthlySalary;


    /**
     * 模块绩效
     */

    @ApiModelProperty(value="转正模块工资，",required = false)
    private BigDecimal performance;



    /**
     * 是否中心负责人，0：不是，1：是
     */
//    @ApiModelProperty(value="是否公司负责人，null：不是，1：是",required = false)
//    private Integer iscentreprincipal;
    /**
     * 是否部门负责人
     */
//    @ApiModelProperty(value="是否部门负责人，null：不是，1：是",required = false)
//    private Integer isdepartmentprincipa;


//    @ApiModelProperty(value="附件url",required = false)
//    private List<String> enclosureUrl;

//    /**
//     * 健康状态
//     */
//    @ApiModelProperty(value="健康状态：1：非常好，2：良好，3：一般，4：有生理缺陷，5:残废",required = false)
//    private String healthstatus;





    @ApiModelProperty(value="转正基本工资",required = false)
    private BigDecimal  basicSalary;

//新员工录用
    @ApiModelProperty(value="试用期月薪",required = false)
    private BigDecimal proMonthSalary;
//新员工录用
    @ApiModelProperty(value="试用期基本工资",required = false)
    private BigDecimal proBasicSalary;

//新员工录用
    @ApiModelProperty(value="试用期模块工资",required = false)
    private BigDecimal proPerformanceSalary;






////    复职<1 年 和 >=1年
//    @ApiModelProperty(value="原公司id",required = false)
//    private Long oldCompanyId;
//
//    //    复职<1 年 和 >=1年
//    @ApiModelProperty(value="原部门id",required = false)
//    private Long oldDepartmentId;
//
//    //    复职<1 年 和 >=1年
//    @ApiModelProperty(value="原岗位id",required = false)
//    private Long oldJobId;
//
//    //    复职<1 年 和 >=1年
//    @ApiModelProperty(value="原职级类型",required = false)
//    private Integer oldJobLevelType;
//
//    //    复职<1 年 和 >=1年
//    @ApiModelProperty(value="原职级Id",required = false)
//    private Long oldJobLevelId;





    //    复职<1 年 和 >=1年
    @ApiModelProperty(value="原月薪",required = false)
    private BigDecimal beforeSalary;

    //    复职<1 年 和 >=1年
    @ApiModelProperty(value="原基本工资",required = false)
    private BigDecimal beforeBasicSalary;

    //    复职<1 年 和 >=1年
    @ApiModelProperty(value="原模块工资",required = false)
    private BigDecimal beforePerformanceSalary;

//    复职小于1年
    @ApiModelProperty(value="复职月薪",required = false)
    private BigDecimal afterSalary;

    //    复职小于1年
    @ApiModelProperty(value="复职基本工资",required = false)
    private BigDecimal afterBasicSalary;
    //    复职小于1年
    @ApiModelProperty(value="复职模块工资",required = false)
    private BigDecimal afterPerformanceSalary;


    @ApiModelProperty(value="是否异地代缴社保，0：不是，1：是",required = false)
    private Integer isRemoteSocialSecurity;

    @ApiModelProperty(value="代缴省市",required = false)
    private String socialSecurityCity;

    @ApiModelProperty(value="代缴省",required = false)
    private String socialSecurityProvince;

    @ApiModelProperty(value="备注",required = false)
    private String empRemark;


    @ApiModelProperty(value="面试评价表",required = false)
    private List<String> evaluation;

    @ApiModelProperty(value="背调报告",required = false)
    private List<String> backReport;

    @ApiModelProperty(value="简历原件",required = false)
    private List<String> resume;

    @ApiModelProperty(value="录用邀约函",required = false)
    private List<String> invitationLetter;

    @ApiModelProperty(value="岗位薪资测算表",required = false)
    private List<String> measure;

    @ApiModelProperty(value="银行流水/薪资证明",required = false)
    private List<String> prove;

    @ApiModelProperty(value="其他附件",required = false)
    private List<String> otherAtt;




}
